package com.magenta.maxoptra.geocoding.geobase.webservice;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
import java.io.Serializable;


/**
 * <p>Java class for Address complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="Address">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element name="Number" type="{http://www.w3.org/2001/XMLSchema}int"/>
 *         &lt;element name="ExtendedNameInfo" type="{http://www.telogis.com/geobase/}ArrayOfNameInfo" minOccurs="0"/>
 *         &lt;element name="City" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="SubRegions" type="{http://www.telogis.com/geobase/}ArrayOfString" minOccurs="0"/>
 *         &lt;element name="Regions" type="{http://www.telogis.com/geobase/}ArrayOfString" minOccurs="0"/>
 *         &lt;element name="Region" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="PostalCode" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="Country" type="{http://www.telogis.com/geobase/}Country"/>
 *         &lt;element name="Names" type="{http://www.telogis.com/geobase/}ArrayOfString" minOccurs="0"/>
 *       &lt;/sequence>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Address", propOrder = {
    "number",
    "extendedNameInfo",
    "city",
    "subRegions",
    "regions",
    "region",
    "postalCode",
    "country",
    "names",
    "latitude",
    "longitude"
})
public class Address implements Serializable {
    private static final long serialVersionUID = 1;

    @XmlElement(name = "Number")
    protected int number;
    @XmlElement(name = "ExtendedNameInfo")
    protected ArrayOfNameInfo extendedNameInfo;
    @XmlElement(name = "City")
    protected String city;
    @XmlElement(name = "SubRegions")
    protected ArrayOfString subRegions;
    @XmlElement(name = "Regions")
    protected ArrayOfString regions;
    @XmlElement(name = "Region")
    protected String region;
    @XmlElement(name = "PostalCode")
    protected String postalCode;
    @XmlElement(name = "Country", required = true)
    protected Country country;
    @XmlElement(name = "Names")
    protected ArrayOfString names;
    protected double latitude;
    protected double longitude;

    /**
     * Gets the value of the number property.
     * 
     */
    public int getNumber() {
        return number;
    }

    /**
     * Sets the value of the number property.
     * 
     */
    public void setNumber(int value) {
        this.number = value;
    }

    /**
     * Gets the value of the extendedNameInfo property.
     * 
     * @return
     *     possible object is
     *     {@link ArrayOfNameInfo }
     *     
     */
    public ArrayOfNameInfo getExtendedNameInfo() {
        return extendedNameInfo;
    }

    /**
     * Sets the value of the extendedNameInfo property.
     * 
     * @param value
     *     allowed object is
     *     {@link ArrayOfNameInfo }
     *     
     */
    public void setExtendedNameInfo(ArrayOfNameInfo value) {
        this.extendedNameInfo = value;
    }

    /**
     * Gets the value of the city property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getCity() {
        return city;
    }

    /**
     * Sets the value of the city property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setCity(String value) {
        this.city = value;
    }

    /**
     * Gets the value of the subRegions property.
     * 
     * @return
     *     possible object is
     *     {@link ArrayOfString }
     *     
     */
    public ArrayOfString getSubRegions() {
        return subRegions;
    }

    /**
     * Sets the value of the subRegions property.
     * 
     * @param value
     *     allowed object is
     *     {@link ArrayOfString }
     *     
     */
    public void setSubRegions(ArrayOfString value) {
        this.subRegions = value;
    }

    /**
     * Gets the value of the regions property.
     * 
     * @return
     *     possible object is
     *     {@link ArrayOfString }
     *     
     */
    public ArrayOfString getRegions() {
        return regions;
    }

    /**
     * Sets the value of the regions property.
     * 
     * @param value
     *     allowed object is
     *     {@link ArrayOfString }
     *     
     */
    public void setRegions(ArrayOfString value) {
        this.regions = value;
    }

    /**
     * Gets the value of the region property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getRegion() {
        return region;
    }

    /**
     * Sets the value of the region property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setRegion(String value) {
        this.region = value;
    }

    /**
     * Gets the value of the postalCode property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getPostalCode() {
        return postalCode;
    }

    /**
     * Sets the value of the postalCode property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setPostalCode(String value) {
        this.postalCode = value;
    }

    /**
     * Gets the value of the country property.
     * 
     * @return
     *     possible object is
     *     {@link Country }
     *     
     */
    public Country getCountry() {
        return country;
    }

    /**
     * Sets the value of the country property.
     * 
     * @param value
     *     allowed object is
     *     {@link Country }
     *     
     */
    public void setCountry(Country value) {
        this.country = value;
    }

    /**
     * Gets the value of the names property.
     * 
     * @return
     *     possible object is
     *     {@link ArrayOfString }
     *     
     */
    public ArrayOfString getNames() {
        return names;
    }

    /**
     * Sets the value of the names property.
     * 
     * @param value
     *     allowed object is
     *     {@link ArrayOfString }
     *     
     */
    public void setNames(ArrayOfString value) {
        this.names = value;
    }

    /**
     * Gets the value of the latitude property.
     */
    public double getLatitude() {
        return latitude;
    }

    /**
     * Sets the value of the latitude property.
     */
    public void setLatitude(double value) {
        this.latitude = value;
    }

    /**
     * Gets the value of the longitude property.
     */
    public double getLongitude() {
        return longitude;
    }

    /**
     * Sets the value of the longitude property.
     */
    public void setLongitude(double value) {
        this.longitude = value;
    }

}
